package design.onekey.service;

import com.baomidou.mybatisplus.extension.service.IService;
import design.onekey.base.BaseEntity;
import design.onekey.base.PageEntity;
import design.onekey.model.dto.UserInfoDto;
import design.onekey.model.SysMenu;
import design.onekey.model.UserRole;
import design.onekey.model.dto.AuthTreeDto;
import design.onekey.model.dto.IndexMenuTreeDto;

import java.util.List;

/**
* @Description: SysMenu服务接口
* @author
* @date 2020-06-05 04:03:09
* @version V1.0
*/
public interface ISysMenuService extends IService<SysMenu> {

   /**
   * @Title: tablePagingQuery
   * @Description: 表格分页查询
   * @param @param model
   * @return BaseEntity
   * @throws
   */
   PageEntity tablePagingQuery(SysMenu model);

   /**
   *<p>Title: getDetail</p>
   *<p>Description: 获取详情</p>
   * @author blcloak
   * @param id
   * @return
   */
   BaseEntity getDetail(Long id);

   /**
   *<p>Title: insert</p>
   *<p>Description: 新增数据</p>
   * @author blcloak
   * @param model
   * @return
   */
   BaseEntity insert(SysMenu model, UserInfoDto userInfoDto);

   /**
   *<p>Title: update</p>
   *<p>Description: 更新数据</p>
   * @author blcloak
   * @param model
   */
   BaseEntity update(SysMenu model);

   /**
   *<p>Title: delete</p>
   *<p>Description: 单条删除数据</p>
   * @author blcloak
   * @param model
   * @return
   */
   BaseEntity delete(Long id);

   /**
   *<p>Title: deleteBatch</p>
   *<p>Description: 批量删除数据</p>
   * @author blcloak
   * @param list
   * @return
   */
   BaseEntity deleteBatch(List<Long> ids);

   /**
    * @Title: getAuthTree
    * @Description: 获取菜单授权树
    * @param userRole
    * @return
    * @author blcloak
    * @date 2020-06-10 05:04:40
    */
   AuthTreeDto getAuthTree(UserRole userRole, UserInfoDto userInfoDto);

   /**
    * @Title: getIndexMenu
    * @Description: 获取首页菜单树
    * @param userInfoDto
    * @return
    * @author blcloak
    * @date 2020-06-11 05:14:23
    */
   List<IndexMenuTreeDto> getIndexMenu(UserInfoDto userInfoDto);

   /**
    * @Title: getAllMenus
    * @Description: 获取所有的后台菜单
    * @return
    * @author blcloak
    * @date 2020-06-16 01:20:03
    */
   List<SysMenu> getAllMenus(SysMenu sysMenu);
//

}
